<?php

namespace Common\Model;

/**
 * HotelPayModel.class实例模型
 * 
 * @author songanwei
 * @date 2016-1-9
 */
class HotelPayModel extends BaseModel {

    protected $trueTableName = 'tb_hotel_pay';
    protected $field = 'id,hotelentity_id,name,type,status';

    /**
     * 根据名字获取信息
     * @modify trainyao 2016-05-19 创建
     * @param  string   $name      支付方式名字
     * @return array              信息数组
     */
    public function getInfoByName($name) {
        $option = array(
            'status' => NOT_DELETE,
            'name' => $name,
        );
        $data = $this->where($option)->field($this->field)->select();

        return empty($data) ? array() : $data;
    }

    /**
     * 根据名字获取信息
     * @modify trainyao 2016-05-19 创建
     * @param  string   $name      支付方式名字
     * @return array              信息数组
     */
    public function getInfoByHotel($hotelId) {
        if (is_array($hotelId)) {
            $option['hotelentity_id'] = array('in', $hotelId);
        } else {
            $option['hotelentity_id'] = $hotelId;
        }

        $data = $this->where($option)->field($this->field)->select();

        return empty($data) ? array() : $data;
    }

    /**
     * 保存id对应条目的可删除标识字段
     * @modify trainyao 2016-05-20 创建
     * @param  mixin   $ids       条目ID
     * @param  integer   $type      是否可删除
     * @return boolean              执行结果
     */
    public function saveType($ids, $type) {
        $option = array(
            'status' => NOT_DELETE,
            'operator' => 0,
        );
        if (is_array($ids)) {
            $ids = implode(',', $ids);
        }
        if (strpos($ids, ',') === false) {
            $option['id'] = $ids;
        } else {
            $option['id'] = array('in', $ids);
        }
        $data = array(
            'type' => $type,
        );

        return $this->where($option)->save($data) === false ? false : true;
    }

    /**
     * 增加一个或多个支付方式
     * @modify trainyao 2016-05-20 创建
     * @param  mixin   $hotelIds  客栈IDs
     * @param  string   $name      支付方式名字
     * @param  integer   $type      是否可删除
     */
    public function addInfo($hotelIds, $name, $type) {
        if (!is_array($hotelIds)) {
            $hotelIds = explode(',', $hotelIds);
        }
        
        $dataArray = array();
        foreach ($hotelIds as $hotelId) {
            array_push($dataArray, array(
                'hotelentity_id' => $hotelId,
                'name' => $name,
                'type' => $type,
            ));
        }
        unset($hotelId);
        $result = $this->addAll($dataArray);

        return empty($result) ? false : true;
    }

    /**
     * 添加客栈支付类型数据
     * @modify songanwei 2015-12-31
     * @modify trainyao 2016-01-09  修改为增加多条
     * @param array $data 封装好的信息
     * @return boolean          执行结果
     */
    public function addAllInfo($data) {
        $result = $this->addAll($data);

        return empty($result) ? false : true;
    }
}
